{
  //变量声明时的联合类型
  let a: (number | string) = 1;
  a = "1";


  //函数接受的参数可以是number或者string
  function fn(x: (number | string)) {

  }

  fn(1)
  fn("1")



  //定义一个函数 得到传入参数的长度
  function fn2(x: (number | string)) {
    if (x.length) {
      return x.length
    } else {
      return x.toString().length;
    }
  }
  fn2(123)
  fn2("abc")
}